package com.androidiani.ShipDroid;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;

/**
 *  ShipDorid.java 
 *    
 * 	ShipDroid è la prima classe che viene richiama all'avvio dell'applicazione.
 *  Il suo compito è quello di gestire lo stato dell'intera applicazione
 *  (es. salvare i dati di gioco in caso squilli il cellulare etc.).
 *  Essa sarà estesa dalle classi che gestiscono le principali funzioni di gioco.
 *  
 *  @autor Rixxo
 *  @version x.x
 */

public class ShipDroid extends Activity {
	public NetworkManager nm;
	public DBManager db;
	protected ArrayList buffer;
	
	private Init init;
	
    /** 
     * avvia init
     */
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        init = new Init();
    }
	
	
	@Override
	public void onStart(){
		super.onStart();
		
	}
	
	/**
	 * Ripristina lo stato quando ritorna in foreground(cioè viene 
	 * ripresa nello stack delle Activity)
	 */
	@Override
	public void onRestart(){
		super.onRestart();
		resumeState();
	}
	
	@Override
 	public void onResume(){
		super.onResume();
		
	}
	
	@Override
	public void onPause(){
		super.onPause();
		
	}
	
	/**
	 * Salva lo stato prima di andare in background(cioè prima 
	 * di scendere nello stack delle Activity).
	 * 
	 */
	@Override
	public void onStop(){
		super.onStop();
		saveState();
	}
	
	/**
	 * Salva lo stato prima di essere chiusa
	 */
	@Override
	public void onDestroy(){
		super.onDestroy();
		saveState();
		db.close();
	}
	
	/**
	 * Salva i dati di gioco nel database
	 * 
	 * @return <code>null</code> se l'operazione è riuscita, altrimenti
	 * la stringa di errore. 
	 */	
	public String saveState(){
		try{
			//TO DO: codice per salvare i dati nel db
		}catch(Exception e){
			if(e.getMessage() != null)
				return e.getMessage();
		}
		return null;		
	}
	
	/**
	 * Ripristina i dati di gioco presenti nel database
	 * 
	 * @return <code>null</code> se l'operazione è riuscirta, altrimenti
	 * la stringa di errore. 
	 */	
	public String resumeState(){
		try{
			//TO DO: codice per recuperare i dati nel db
		}catch(Exception e){
			if(e.getMessage() != null)
				return e.getMessage();
		}
		return null;		
	}
}